#ifndef ECHO_H
#define ECHO_H

#include <complex>
#include <vector>

class Echo {
    public:
        Echo(int rowsCount, int samplesCount);   // tworzy echo z samym szumem
        virtual ~Echo();
        
        std::vector<std::complex<double> > getSampleVector(int sampleNumber);      // zwraca wektor wiersza z jednego próbkowania
        std::vector<std::complex<double> > getRowVector(int rowNumber);       // zwraca pojedyncze sondowanie-bramki odleglosciowe
        std::vector<std::vector<std::complex<double> > > getEcho();
        std::complex<double> getSingleSample(int rowNumber, int sampleNumber);
        int getRowsCount();
        int getSamplesCount();
        
    private:
        std::complex<double> generateWhiteGaussianNoise();  
        unsigned long rdtsc();

        std::vector<std::vector<std::complex<double> > > echo;
        int rowsCount, samplesCount;
};

#endif  /* ECHO_H */
